# list_stri=input().split()
list_stri="h he hel hell hello o ok n ni nin ninj ninja".split()
def get_result(arr):
    arr.sort()#首先进行排序,排序后同一个字母开头的在一起

    prefixdict={}#字典存储同一个字母开头的一组
    for c in arr:
        preffix=c[0]
        if prefixdict.get(preffix) is None:
            prefixdict[preffix]=[c]
        else:
            prefixdict[preffix].append(c)
    ans=[]
    for k in prefixdict:
        arrk=prefixdict[k]#所有同一字母的存为一组
        setk=set(arrk)#形成集合去重
        while len(arrk) >0:
            top=arrk.pop()#将arrk的最长的一个拿出来
            i=1
            while i < len(top) and top[:i] in setk:#拿出来的一个字符串所有的子字符串是否在setk集合中
                i+=1
            if i==len(top):#字符串所有的子字符串都在setk集合中出现，将其移入可能的密码中
                ans.append(top)
                break
    ans.sort(key= lambda x:(-len(x),[-ord(char) for char in x]))#可能的密码按长度、ASCII码降序，第一个就是真正的密码
    return ans[0]

print(get_result(list_stri))
